package com.biz.ssm.service;

import com.biz.ssm.base.BaseService;
import com.biz.ssm.domain.Admin;

import java.util.List;


/**
 * AdminService
 **/

public interface AdminService extends BaseService<Admin, Long> {
    /**
     * 判断用户名是否存在
     *
     * @param username 用户名(忽略大小写)
     * @return 用户名是否存在
     */
    boolean usernameExists(String username);

    /**
     * 根据用户名查找管理员
     *
     * @param username 用户名(忽略大小写)
     * @return 管理员，若不存在则返回null
     */
    Admin findByUsername(String username);

    /**
     * 根据ID查找权限
     *
     * @param id ID
     * @return 权限, 若不存在则返回null
     */
    List<String> findAuthorities(Long id);

    /**
     * 删除admin
     *
     * @param admin
     */
    void deleteAdmin(Admin admin);

    /**
     * 生成admin
     *
     * @param admin
     */
    void createAdmin(Admin admin, Long[] ids);

    /**
     * 修改admin
     *
     * @param admin
     */
    void modifyAdmin(Admin admin, Long[] ids);

    /**
     * 批量删除admin
     *
     * @param ids
     */
    void removeAdmins(Long[] ids);
}
